/// Rust 提供了原始的字符串类型 str，也叫作字符串切片 。它通常以不可变借用的形式存在，
/// 即&str 出于内存安全的考虑， Rust将字符串分为两种类型，一种是固定长度字符串，
/// 不可随便更改其长度，就是str字符串:另一种是可增长字符串可以随意改变其长度，就是 String字符串。
pub fn start() {
    let truth = "Rust是一门优雅的语言";
    let ptr = truth.as_ptr();
    let len = truth.len();
    assert_eq!(28, len);

    let s = unsafe {
        let string = String::from_raw_parts(ptr as *mut u8, 28, 28);
        println!("{}", string);

        let slice = std::slice::from_raw_parts(ptr, len);
        std::str::from_utf8(slice)
    };
    assert_eq!(s, Ok(truth));
}
